/**
 * 将plop模块作为项目开发依赖，安装yarn add plop --dev
 * 项目根目录下新建plopfile.js
 *  + plop入口文件，需要导出一个函数
 *  + 此函数接收以恶搞plop对象，用于创建生成器任务
 * 在plopfile.js中定义脚手架任务
 * 编写用于生成特定类型文件的模板
 * 通过plop提供的CLI运行脚手架任务 yarn plop component
 */

module.exports = plop => {
  plop.setGenerator('component', {
    description: 'create a component',
    prompts: [
      {
        type: 'input',
        name: 'name',
        message: 'component name',
        default: 'MyComponent',
      },
    ],
    actions: [
      {
        type: 'add',
        path: 'src/component/{{name}}/{{name}}.js',
        templateFile: 'plop-templates/component.hbs',
      },
      {
        type: 'add',
        path: 'src/component/{{name}}/{{name}}.css',
        templateFile: 'plop-templates/component.css.hbs',
      },
      {
        type: 'add',
        path: 'src/component/{{name}}/{{name}}.test.js',
        templateFile: 'plop-templates/component.test.hbs',
      },
    ],
  })
}
